﻿#include <iostream>
using namespace std;
int main() {
#if 0 //第一题
	int i;
	int f = 1;
	for (i = 1; i < 10; i++) {
		f *= i;
	}
	cout << f << endl;

#elif 0 //第二题
	cout << "请输入一个数：" << endl;
	int num;
	cin >> num;
	int f = 0;
	for (int i = 2; i * i <= num; i++) {
		if (num % i == 0) {
			f = 1;
		}
		else {
			f = 0;
		}
	}
	if (f == 0) {
		cout << num << "为素数！" << endl;
	}
#elif 0 //第三题
	int num = 0, sum = 0;
	cout << "请输入一个数：";
	cin >> num;
	while (num > 0) {
		sum += num % 10;
		num += num / 10;
	}

	cout << sum << endl;

#else 1 //第四题
	int y = 0, m = 0, d = 0, sum = 0;
	cout << "请分别输入年月日：" << endl;
	cin >> y >> m >> d;
	cout << y << "年" << m << "月" << d << "日" << endl;

	/*
	31天：
	1 3 5 7 8 10 12
	30天（把2月当作30天计算）：
	2 4 6 9 11
	*/
	switch (m)
	{
	case 1:
		//如果是1月，直接返回输出天数
		break;
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		//把每月当作30天计算，以上月份时，有(月份/2)个月是31天，需要加上月份/2天
		sum = (m - 1) * 30 + m / 2;
		break;
	default:
		//把每个月当作31天计算，以上月份时，有(m / 2 - 1)个月是30天，需要减去(m / 2 - 1)天
		sum = (m - 1) * 31 - (m / 2 - 1);
		break;
	}
	sum += d;
	//3月开始，才需要计算是否是闰年
	if (m > 2) {
		//之前计算时，2月时以30天计算，所以闰年需要在总天数减1，否则减2
		if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
			sum -= 1;
		} else {
			sum -= 2;
		}
	}
	
	cout << y << "年" << m << "月" << d << "日是" << y << "年的第" << sum << "天" << endl;
#endif
	return 0;
}

